package com.auth.manager.utils.page;

import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;

import java.util.List;
import java.util.Objects;

/**
 * @version 1.0.0
 * @Date: 2022/4/29 12:36
 * @Author ZhuYouBin
 * @Description 分页工具类
 */
public class PageUtil {

    /**
     * 开启分页
     * @param pageVo
     */
    public static void start(PageVo pageVo) {
        int pageNum = 0;
        int pageSize = 0;
        if (!Objects.isNull(pageVo)) {
            pageNum = pageVo.getPageNum();
            pageSize = pageVo.getPageSize();
        }
        PageHelper.startPage(pageNum, pageSize);
    }

    /**
     * 封装查询结果
     * @param list 查询结果
     * @param <T> 数据类型
     * @return
     */
    public static <T> PageVo end(List<T> list) {
        PageVo pageVo = new PageVo();
        PageInfo<T> pageInfo = new PageInfo<>(list);
        // 设置分页对象数据
        pageVo.setPageNum(pageInfo.getPageNum());
        pageVo.setPageSize(pageInfo.getPageSize());
        pageVo.setPageCount(pageInfo.getTotal());
        pageVo.setRecord(pageInfo.getList());
        return pageVo;
    }
}
